using System;
using System.IO;
using System.Collections;
using System.Collections.Generic;
using System.Text;

using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;

using BestHTTP;
using BestHTTP.WebSocket;
using BestHTTP.Cookies;
using pEventBus;
using Google.Protobuf;
using Google.Protobuf.Collections;

using Io.Marsdigital.CommonProtocol.Pb;
using Com.Shinian.FcgProtocol.Pb;
using FCG.cache.proxy_model;
using Network;


public struct WSHandShakeSuccessEvent : IEvent
{
    public int playerUId;
}

public struct StaticDataLoadSuccessEvent : IEvent { }

public struct CardPackSaveEvent : IEvent { }

public struct TryEditDeckEvent : IEvent
{
    public DeckPM deckPM;
}

public struct GuideTriggerEvent : IEvent { }

public struct TryCreateDeckEvent : IEvent { }
public struct CardFilterConfirm : IEvent
{
    public int IsStar;
    public int Rarity;
    public int position;
    public int single;
}
public struct RefreshCardOnCourt : IEvent
{
    public int uid;
}

public struct SelectFootballerEvent : IEvent
{
    public int footballerRId;
}

public struct Touch3DOn : IEvent
{
    public Transform target;
}


public struct RefreshFootballerFormationEvent : IEvent { }

public struct DeployState : IEvent
{
    public bool isReady;
    public int pos;
    public int id;
}

public struct DepolyFootballerFinishEvent : IEvent { }
public struct ActionEnd : IEvent { }
public struct ActionBegin : IEvent { }
public struct ExchangePosFrom : IEvent
{
    public int pos;
}

public struct CancelExchangePos : IEvent
{

}

public struct DeckDragStart : IEvent { }
public struct DeckDragEnd : IEvent { }
public struct GuideNextStep : IEvent { }
public struct GuideEndStep : IEvent { }

public struct RefreshCardScrollView : IEvent { }
public struct AttackPathComfirm : IEvent { }


public struct RemoveCardFromDeck : IEvent
{
    public int rid;
}
public struct RemoveDeckCard : IEvent
{
    public int rid;
}

public struct CardInDeck : IEvent
{
    public int rid;
}

public struct SaveEditDeckEvent : IEvent { }


public struct DeckNameSaveEvent : IEvent
{
    public string deckName;
}
public struct DeckNameEditEvent : IEvent
{
    public string deckName;
}

public struct RefreshTurn:IEvent
{
    public bool isFirstHalf;
}

public struct RefreshScoreEvent : IEvent
{
    public int Score1;
    public int Score2;
}

public struct GameMatchEndEvent : IEvent { }

public struct MatchResult : IEvent
{
    public bool Goal;
}

public struct FightStateChangeEvent : IEvent
{
    public int state;
}
public struct DeployTeamChanged : IEvent
{
    public bool myTurn;
}
public struct ExchangePosReady : IEvent
{
    public bool isReady;
    public int from;
    public int to;
}
public struct ExchangePos : IEvent { }

public struct SkillEffectToPlayer : IEvent
{
    public int skillRid;
    public SkillEffectToFootballerDTO skillEffect;
    public int playerId;
}

public struct SelectPathPosEvent : IEvent
{
    public int pos;
}
